//
// Copyright 2016 riteme
//

#include "Texcoord.h"

namespace rsr {

Texcoord2f::Texcoord2f() : u(0.0f), v(0.0f) {}

Texcoord2f::Texcoord2f(const float _u, const float _v) : u(_u), v(_v) {}

Texcoord2f interpolation(const Texcoord2f &tex1, const Texcoord2f &tex2,
                         const float r) {
    ASSERTF(0.0f <= r && r <= 1.0f,
            "Invalid argument 'r': expected in [0.0, 1.0], got %f", r);

    return Texcoord2f(tex1.u * r + tex1.u * (1.0f - r),
                      tex1.v * r + tex1.v * (1.0f - r));
}

}  // namespace rsr
